In a flooded mesh network, each network node can communicate received packets to each other network node, and packets can take multiple different paths to reach a particular destination node. Because of the flooded nature of such a mesh network, network nodes within flooded mesh networks typically include message caching mechanisms that are used to limit network traffic. Uncontrolled flooding within a mesh network occurs when a network node receives the same packet from multiple neighboring nodes and forwards the packet each time it is received instead of only once. To avoid this uncontrolled flooding, network nodes can use the message cache to store information about the most recently received messages in order to avoid duplicate processing of the same packet received multiple times. This protection from uncontrolled duplicate processing is often called flood protection.
In a secure flooded mesh networks, each packet is typically authenticated with a secret group key that prevents an attacker from injecting malicious packets into the network. As such, the only practical attack on such secure flooded mesh networks is often a replay attack. A replay attack typically includes storing a prior message that has been correctly authenticated by a legitimate network node and then replaying it later when its effects will benefit the attacker. To protect against this attack, a network node can be configured to recognize that a received message has already been sent in the past and ignore it. This recognition of previously sent messages in often called replay protection. Prior replay protection solutions focus on storing the source sequence number (SSN) for each message source, checking all new sequence numbers, and accepting as valid only those within a certain window of sequence numbers.
Although it may seem that replay protection is a natural consequence of flood protection, the message caches within mesh network devices are typically limited in size and operate in a FIFO (first-in-first-out) manner when they become full. As such, for any given previously received message, the message cache may no longer hold the SSN for the message when the replayed message is received, thereby allowing the replay attack to become possible. Although the message cache can be increased in size to address this size limitation issue, many network nodes within a mesh network are resource constrained devices where increasing size allocations to message cache tables within device memory is not practical due to limitations on the device memory size.